/**
 * 
 */
package com.desksoft.ecommerce.handler.controller.mall;

import java.util.Map;

import org.apache.commons.lang.StringUtils;

import com.desksoft.ecommerce.handler.controller.ControllerBase;
import com.desksoft.ecommerce.helper.mall.SiteinfoHelper;
import com.desksoft.ecommerce.vo.mall.MallSiteInfoVO;
import com.desksoft.utility.string.StringUtil;
import com.google.common.collect.Maps;

/***************************************
 * <pre>
 * 版权所有：杭州迪科软件 保留所有权利
 * 创建日期: Oct 9, 2011 4:50:34 PM
 * 创建作者：yejw
 * 文件名称：MallControllerBase.java
 * 版本：1.0
 * 功能：
 * 最后修改时间：Oct 9, 2011 4:50:34 PM
 * 修改记录：
 * </pre>
 *****************************************/
public class MallControllerBase extends ControllerBase {

	/**
	 * Structure View
	 * 
	 * @param structureId
	 * @return
	 */
	public String structureView(String structureId) {
		return StringUtil.join("structure:", structureId);
	}

	/**
	 * Dynamic Mall View. See /03.DESKSOFT_MALL/src/mall-href.xml
	 * 
	 * @param actionName
	 * @return
	 */
	public String mallhrefView(String actionName) {
		return mallhrefView(actionName, null);
	}
	
	/**
	 * Dynamic Mall View. See /03.DESKSOFT_MALL/src/mall-href.xml
	 * 
	 * @param actionName
	 * @param paramName
	 * @param paramValue
	 * @return
	 */
	public String mallhrefView(String actionName, String paramName, Object paramValue) {
		Map<String, Object> params = Maps.newHashMap();
		params.put(paramName, paramValue);
		
		return mallhrefView(actionName, params);
	}
	
	/**
	 * Dynamic Mall View. See /03.DESKSOFT_MALL/src/mall-href.xml
	 * 
	 * @param actionName
	 * @param paramters
	 * @return
	 */
	public String mallhrefView(String actionName, Map<String, Object> paramters) {
		String action = "mallhref:";
		if (null == paramters || paramters.size() <= 0) {
			return StringUtil.join(action, actionName);
		}
		
		StringBuilder params = new StringBuilder();
		for (String key : paramters.keySet()) {
			params.append(key).append("=").append(paramters.get(key)).append("&");
		}
		
		return StringUtil.join(action, actionName, "|paramters|",StringUtils.substringBeforeLast(params.toString(), "&"));
	}

	/**
	 * 站点信息
	 * 
	 * @return
	 */
	public MallSiteInfoVO getSiteInfo() {
		return SiteinfoHelper.getInstance();
	}
}
